package JSTL;

public class JSTLintroduce {

    /**
     *
     *
     * <%--
     *      <c:set/>
     *      scopo属性设保存到哪个域
     *      var     属性设置key
     *      value  属性设置值
     *       作用：set标签可以往域中保存数据
     *
     *       <c:if/>
     *        if标签用来做if判断
     *        test属性表示判断的条件(EL表达式：里面不能有任何空格否则不输出在页面上)
     * /--%>
     *
     *      <c:choose>
     *          <c:when>
     *
     *          </c:when>
     *          <c:otherwise></c:otherwise>
     *      </c:choose>
     *     作用：类似switch
     *     test表示当前里面写EL表达式
     *     1.标签里不能使用html注释，要使用jsp注释
     *     2.when标签里父标签一定要是choose标签
     *       也就是说如果<c:when>中还要判断 必须
     *       </c:choose>
     *       <c:when>
     *           <c:choose>
     *               <c:when></c:when>
     *           </c:choose>
     *       </c:when>
     *       </c:choose>
     *    otherwise也一样
     *     <c:otherwise>
     *      <c:choose>
     *      <c:when></c:when>
     *      </c:choose>
     *      </c:when>
     *     </c:otherwise>
     *
     *
     *   <c:forEach>
     *       for(int i = 1 ; i <=10 ; i++)
     *   begin：属性设置开始的索引
     *   end：属性设置结束的索引
     *   var：属性表示循环的变量(也是当前正在遍历的数据) i
     *   <c:forEach begin="1" end="10" var="ii" >
    *
     *   </c:forEach>
     *
     *   <c:forEach>
     *     for(String item : arr)
     *     items 表示遍历的数据源(遍历的数组/集合)
     *     var   表示当前遍历到的数据
     *   <c:forEach items="requestScope.arr" var="i">
     *     ${i}
     *   </c:forEach>
     *
     *   //输出Map
     *      items 表示遍历的数据源(遍历的  集合)
     *      var   表示当前遍历到的数据
     *      <%
     *        Map<String,Object> map = new HashMap<>();
     *        map.put("key1",1);
     *        map.put("key2",2);
     *        map.put("key3",3);
     *        request.setAttribute("Map",map);
     *    %>
     *    <br>
     *    <c:forEach items="${requestScope.Map}" var="entry">
     *        ${entry}<br>
     *        ${entry.key}<br>
     *        ${entry.value}<br>
     *    </c:forEach>
     * <c:forEach>
     * 输出list集合
     * items 表示遍历的集合
     * var   表示遍历到的数据
     * begin 表示遍历开始的索引
     * end   表示结束索引
     * step  表示遍历的步长值
     * step=2 每次递增2
     *
     * varStatus 属性表示当前遍历到的数据的状态
     * status里面的方法：
     * status.current 输出的值与var中输出的值一样
     * status.index   输出的值与begin里面的值一样
     * status.count   输出的值与count表示遍历的个数
     * status.first   表示当前遍历的数据是否是第一条
     * status.last    表示当前遍历的数据是否是最后一条
     * //读取数据的方法 getXxx或者isXxx
     * 所以get打头和is打头都可以通过   域.点出来
     * status.begain  你的begain设置的是多少他就输出多少
     * status.end     你的end设置的是多少他就输出多少
     *<table border="1"  cellspacing="0" class="table1" >
     *     <tr>
     *         <th>ID</th>
     *         <th>账号</th>
     *         <th>密码</th>
     *         <th>邮箱</th>
     *         <th>操作</th>
     *     </tr>
     *
     *     <e:forEach items="${requestScope.list}" var="list">
     *         <tr align="center">
     *         <td>${list.id}</td>
     *         <td>${list.username}</td>
     *         <td>${list.password}</td>
     *         <td>${list.email}</td>
     *         <td>增加、修改</td>
     *         </tr>
     * </e:forEach>
     *
     * 若想从指定位置输出
     *      *     <e:forEach begin="2" items="${requestScope.list}" var="list">
     *      *     从索引为2开始
     *      *         <tr align="center">
     *      *         <td>${list.id}</td>
     *      *         <td>${list.username}</td>
     *      *         <td>${list.password}</td>
     *      *         <td>${list.email}</td>
     *      *         <td>增加、修改</td>
     *      *         </tr>
     *      * </e:forEach>
     *
     * </table>
     *
     *
     */
}
